/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.futco.sysconthos.Modelo.Procesos.Daos;

import org.futco.sysconthos.Modelo.Admisiones.Medico;
import org.futco.sysconthos.Modelo.Admisiones.Daos.IDAO;
import org.futco.sysconthos.Modelo.Admisiones.Daos.Model;
import org.futco.sysconthos.Modelo.Proceso.Cita;
import org.futco.sysconthos.Modelo.Proceso.Especialidad;
import org.futco.sysconthos.Modelo.Proceso.EspecialidadMedico;
import com.mysql.jdbc.PreparedStatement;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author Server
 */
public class EspecialidadMedicoDAO implements IDAO<EspecialidadMedico>{
     private Model model;
    private PreparedStatement psInsert;

      public EspecialidadMedicoDAO() throws SQLException {
        model = Model.getInstance();
    }

    public void insert(EspecialidadMedico t) throws SQLException {
       if (psInsert == null) {
            String sqlInsert = "INSERT INTO especialidadMedico (codMedico, codEspecialidad) VALUES (?,?)";
            psInsert = (PreparedStatement) model.getCon().prepareStatement(sqlInsert);
        psInsert.setString(1, t.getCodMedico());
        psInsert.setString(2, t.getCodEspecialidad());
       
        psInsert.executeUpdate();
        if(psInsert!=null){
            psInsert.close();
        }}
    }

    public void delete(EspecialidadMedico t) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
 
    public List<EspecialidadMedico> getAll() throws SQLException {
    	EspecialidadMedico pro=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        List lista= new LinkedList();

        try{
            String sqlInsert = "Select * from especialidadmedico";
            ps=(PreparedStatement) model.getCon().prepareStatement(sqlInsert);
            rs=ps.executeQuery();
            while(rs.next()){
                pro=this.loadEspeMed(rs);
                lista.add(pro);
            }

        }finally{
            if(rs!=null){
                rs.close();
            }
            if(ps!=null){
                ps.close();
            }
        }
        return lista;
    }

    public List<EspecialidadMedico> getAllBy(String t, String n) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public EspecialidadMedico find(Integer id) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    private EspecialidadMedico loadEspeMed(ResultSet rs) throws SQLException {

        EspecialidadMedico epm=new EspecialidadMedico();
       
        epm.setCodEspecialidad(rs.getString(1));
        epm.setCodMedico(rs.getString(2));
        
       return epm;
     }
 
    public EspecialidadMedico find(String codigoMedico) throws SQLException {
    	
    	 EspecialidadMedico em = new EspecialidadMedico();
         java.sql.PreparedStatement pst = null;
         ResultSet rs = null;
         try {
             pst = model.getCon().prepareStatement("SELECT * FROM especialidadmedico em,especialidad e,medico m WHERE em.codMedico=m.codigo and em.codEspecialidad=e.codigo and em.codMedico=?");
             pst.setString(1,  codigoMedico.trim());
             rs = pst.executeQuery();

             if (rs.next()) {
               em = loadEspeMed(rs);
             }

         } finally {
             if (pst != null) {
                 pst.close();
             }
             if (rs != null) {
                 rs.close();
             }
         }
         return em;
	
        
    }
  
    public void update(String codigo, EspecialidadMedico t) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}
